Rigging two handed weapon
You may use some IK (invert kinematics) and some constraints to do this kind of things.

I did a very basic model to show that :



I presume you know how to parent a mesh to an armature, but if not, please leave a comment and I could complete that.

The body is parented with automatic weights.

The gun is parented too, but all the weights are given to the root bone.

The right hand has a IK constraint with a chain length set to 4 in order to end at the shoulder (the yellow line you can see in the gif above) :



The left hand is done the same but it target an empty indicated by the green arrow :



The gun now : its root bone has a constraint in order to follow a little bone of the man armature parented to its right hand. This allows the gun to follow this hand :



The empty has a constraint too which makes it follow the gun extremity, which is the bone indicated by the arrow in the 3D view below :



So, to summarize :


The gun follows the right hand
The empty follows the gun extremity
The left hand follows the empty


But in some situation surely, you want to free the left hand, because the man position needs it. So simply lower the influence of the left hand constraint to allow it to come back in place. You are also free to move it independently :