Heat the oven to 325°F. Pat the shanks dry and season all over with the salt and pepper.
Heat the oil in a Dutch oven over medium high heat. Sear the shanks about 4 minutes per side, until deeply browned, then move them to a plate.
Reduce the heat to medium. Add the onion, carrots, and celery and cook 5 to 6 minutes, until softened.
Stir in the garlic, tomato paste, and flour and cook 1 minute. Pour in the broth and scrape the bottom of the pot clean.
Stir in the vinegar, thyme, and rosemary. Settle the shanks back in with any juices and bring to a simmer.
Cover and braise in the oven 3 to 3½ hours, until the meat pulls away from the bone with a fork.
Carefuly remove from the oven and skim off any fat. Serve warm.
Notes
I do use red wine vinegar in this recipe. If you don't have red wine vinegar, you can actually use balsamic vinegar or apple cider vinegar. They all work perfectly and add their own unique flavor!
I leave all the fat on the shanks when they go into the pot. It looks like an awful lot sitting there, but three hours of braising renders most of it away, and that is honestly where the flavor comes from.
I have my butcher cut the shanks about an inch and a half thick with the bone left in. They will do it for you, and beef shank is one of the cheapest things in the whole case!
Your liquid should come about halfway up the shanks in step 5. If yours got cut thicker than mine, you don't need more broth; just use a smaller pot so the level still comes up halfway.
I start checking mine at 3 hours, though every shank is a little different. When the meat gives way with no resistance at all, it is done, so go by the fork rather than the clock.
You can absolutely make these in a slow cooker on low for about 6 hours. I would skip the pressure cooker, though; it rushes the beef, and it comes out more tough than tender.
Chicken broth works in place of the beef broth; it just comes out a little lighter.