Daniel Lerch's Home Page



 About the author
Daniel Lerch was born in 1978 in Barcelona, Spain. He received his Bachelor's degree in Computer Science and his Master's degree in Security from UOC ( ISI in 2008, ITIS in 2004, MCWNS in 2004). In early 2006, he founded the OpenDomo project, witch aims to produce a free and secure home automation system.
Daniel Lerch has published some papers about Computer Science and maintain a weblog where he writes about security, cryptography and programming.

 Publications
- Blog h4ck1t.
- Ataque de factorización a RSA, hakin9 (n19).
- Criptografía de curva Elíptica, Ataque Rho de Pollard, hakin9.
- El proyecto OpenDomo (Sector Seguridad n60, año V, Julio-Agosto 2007)

 Security:
Given p, q, exp and key modulus, gets a RSA private key.
[ get_priv_key.c ]
Man-In-The-Middle attack using ARP poisoning (PoC). [ arp-mitm.c ]
Client/Server shell that uses ICMP packets.
[ icmp-shell-server.c - icmp-shell-client.c ]
Setuid() function hijacking. It gets root privileges calling setuid() with a predefined pid. Only works with 2.4 kernels.
[ hijacking_setuid.c ]
'proc' filesystem backdoor. Only works with 2.6 Kernel.
[ backdoor_procfs.c - Makefile ]
Brute force attack to Linux passwords, MD5 and SHA1 algorithms.
[ cracker_linux.c - cracker_md5.c - cracker_sha1.c ]

 Data Structures:
Linked List: C implementation.
[ list.h - list.c - example.c - Makefile ]

Hash Table: C implementation.
[ hash.h - hash.c - list.h - list.c - example.c - Makefile ]

Stack: C implementation.
[ stack.h - list.h - list.c - example.c - Makefile ]

Queue: C implementation.
[ queue.h - list.h - list.c - example.c - Makefile ]

Set: C implementation.
[ set.h - set.c - list.h - list.c - example.c - Makefile ]

 Maths:
Distributed Factorization of Large Integeres: Uses the self-initializing quadratic sieve (SIQS) with single or double large prime support through the Jason Papadopoulos msieve library. In future versions, dfact will suport the General Number Field Sieve (GNFS).
[ dfact.tar.gz]
Solve GF2 Matrix: Solve Matrices over GF2, a common task in factorization. Uses the NTL Library.
[ matrix_solve_GF2.cpp]
Fermat Factorization Method: Uses the GMP Library.
[ fermat.cpp]
Kraitchik Factorization Method: Uses the GMP Library.
[ kraitchik.cpp]

 Other tools:
MySQL Data Base access implemented in C.
[ database.h - database.c - resultset.h - resultset.c - example.c - Makefile ]

Serial port access.
[ serial.h - serial.c - example.c - Makefile ]

strlcpy() and strlcat() functions.
[ strutils.h - strutils.c - example.c - Makefile ]

C++ Library that implements an OpenSSL wrapper.
[ project page ]
C++ Library for reading simple configuration files.
[ project page ]
Selekron SKMSP1 C++ wrapper. ( SitePlayer Embedded)
[ project page ]