Sen. John McCain (R-Ariz.) performed the formal ceremony of pinning the new insignia on Brown, according to the Sun Chronicle of Attleboro, Mass.
Brown had previously served as a lieutenant colonel.
Brown called McCain, who has been a mentor to him in the Senate, a national hero.
The junior senator from Massachusetts has served in the National Guard for 32 years.
Throughout the day a number of Brown's Republican colleagues in the Senate congratulated his promotion.