As has already been mentioned, the same techniques as used in Zoom Windows Magnification can be used here - but this is very dependent on getting the vector maths correct, which is also critically dependent on getting the geometry and orientation correct, so I'll try and explain the set up in an as easy to replicate method as possible.
For the geometry, we need to have two parallel faces with specific orientations so that we can use the coordinates to generate the correct normal for the 'lens' at the front of the 'scope' - this allows the image to be zoomed to the correct magnification. The simplest start point is for a cube. Note that the orientation of the faces is significant (since the X/Y coordinates will be used for the lens - therefore, if you later rotate the cube do not 'Apply Scale' as this will upset the coordinates.
Create your cube. The uppermost face will become the 'screen' of the scope, the bottom face will become the 'lens'. In Edit mode (Tab) select the uppermost face and assign a new material ('Scope.Screen'), select the bottom face and assign a new material ('Scope.Lens'). You can optionally assign a material to the rest of the mesh for the body ('Scope.Body').
The direction of the Normal is also significant. Select the uppermost face ('Scope.Screen') and the bottom face ('Scope.Lens') and select Mesh/Normals/Flip Normals. This should result in the following :

Note the flipped normals. Different materials assigned to the 'body', 'screen' (top face) and 'lens' (bottom face).
For the 'Screen', setup the material as follows :

Note the IOR of zero - this, combined with the flipped normal, results in all rays being directed along the normal (ie, directly towards the opposite (lens) face).
For the 'Lens', setup the material as follows :

This material uses the Refraction shader with a Normal generated based on the X and Y coordinates (it's critical that the mesh is orientated so that the bottom face is flat to the X and Y planes). The X and Y is combined into a vector along with a fixed 'Z' and this is converted to a Normal via the Vector Transform node (to convert from Object to World space). Adjust the Z length and IOR to adjust the focal length (strength) of the lens.
Once the mesh and materials are configured you can rotate and scale the mesh as desired - but ensure you do not 'apply rotation' (as this will upset the X/Y coordinates used to generate the lens) and only scale along the object's local axes (otherwise it will skew the opposing faces and result in the screen no longer being aligned to the lens). If you do 'apply scale' then this will affect the focal length (as the Z value will be relative to the new scale) which may need to be re-adjusted.
Here's the final result :

Blend file included 
Just for completeness, here's a very rough animation of this in action :

And here animating the IOR in order to dynamically 'zoom' :
