':param vuln_obj: The vuln to exploit.
:return: A shell object based on the vuln that is passed as parameter.'

def _generate_shell(self, vuln_obj):

    exploit_success = self._verify_vuln(vuln_obj)
    if (exploit_success == SUCCESS_COMPLETE):
        shell_obj = RFIShell(vuln_obj, self._uri_opener, self.worker_pool, self._exploit_mutant)
        return shell_obj
    elif (exploit_success == SUCCESS_OPEN_PORT):
        shell_obj = PortScanShell(vuln_obj, self._uri_opener, self.worker_pool, self._exploit_mutant)
        return shell_obj
    else:
        return None
